const {verify}=require('../util/jwt')
const {jwtSecret}=require('../config/config.default')
const {User} =require('../model')

// 验证token
module.exports=async (req,res,next)=>{
	/*
		1,从请求头获取token数据
		2，验证token数据
		3，验证失败，返回401
		4，验证成功，从token读取用户信息。挂载到req
		5，往下执行
	*/
   // req.headers返回的是一个对象
   let token=req.headers['authorization']
   token=token?token.split('Bearer ')[1]:null
   if(!token){
	  return res.status(401).send('请求头无token')
   }
   try{
   	const decodedToken=await verify(token,jwtSecret)
	req.user= await User.findById(decodedToken.userId)
   	// console.log(decodedToken);
	next()
   }catch(err){
	   return res.status(402).send('token无效')
   }
   
}